package com.bank.backend.service;

import com.bank.backend.model.dto.CustomerCreateDTO;
import com.bank.backend.model.dto.CustomerQueryDTO;
import com.bank.backend.model.dto.CustomerUpdateDTO;
import com.bank.backend.model.entity.User;
import com.bank.backend.model.vo.UserVO;
import com.bank.backend.result.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 管理员服务接口
 */
public interface CustomerManageService extends IService<User>{

    /**
     * 创建客户
     * @param customerCreateDTO 客户创建DTO
     * @return 用户VO
     */
    void createCustomer(CustomerCreateDTO customerCreateDTO);

    /**
     * 更新客户信息
     * @param customerUpdateDTO 客户更新DTO
     */
    void updateCustomer(CustomerUpdateDTO customerUpdateDTO);

    /**
     * 多条件查询客户
     */
    List<UserVO> listCustomers(Integer userId, String userName, String pid, String telephone, String address);

    /**
     * 分页查询客户信息
     */
    PageResult<UserVO> pageCustomers(Integer page, Integer size, Integer userId, String userName, String pid, String telephone, String address);

    /**
     * 分页查询客户信息（使用DTO）
     */
    PageResult<UserVO> pageCustomers(CustomerQueryDTO queryDTO);

    /**
     * 管理员重置客户账户密码
     */
    boolean resetCustomerPassword(Integer userId);

    /**
     * 删除客户信息
     * @param userId 用户ID
     * @return 删除结果信息
     */
    String removeCustomer(Integer userId);
}
